BigDecimal ক্লাসটি java.math প্যাকেজের একটি ক্লাস যা বৃহত্তর দশমিক মান (floating point numbers) এবং অত্যন্ত নির্ভুল গণনার জন্য ব্যবহৃত হয়। এটি সাধারণ float বা double টাইপের চেয়ে বেশি নির্ভুল গণনা করে এবং এটি আর্থিক বা অন্যান্য হিসাবের জন্য উপযুক্ত।
এই নিবন্ধে আমরা BigDecimal এর সাথে Addition (যোগ), Subtraction (বিয়োগ), Multiplication (গুণ), এবং Division (ভাগ) কীভাবে করা যায় তা উদাহরণসহ আলোচনা করব।
BigDecimal এর সাথে Addition, Subtraction, Multiplication, এবং Division
BigDecimal ক্লাসের মাধ্যমে যেকোনো ধরনের গাণিতিক অপারেশন করার জন্য, add(), subtract(), multiply(), এবং divide() মেথড ব্যবহার করা হয়।
1. Addition (যোগ) using add()
BigDecimal এর add() মেথড দুটি BigDecimal সংখ্যা যোগ করতে ব্যবহৃত হয়।
Example: Addition using BigDecimal
import java.math.BigDecimal;
public class BigDecimalAddition {
public static void main(String[] args) {
// Create two BigDecimal objects
BigDecimal num1 = new BigDecimal("123.45");
BigDecimal num2 = new BigDecimal("678.90");
// Add the two BigDecimal numbers
BigDecimal result = num1.add(num2);
// Print the result
System.out.println("Sum: " + result);
}
}
Output:
Sum: 802.35
Explanation:
add()মেথড দুটিBigDecimalসংখ্যা যোগ করে এবং ফলস্বরূপ একটি নতুনBigDecimalঅবজেক্ট রিটার্ন করে।
2. Subtraction (বিয়োগ) using subtract()
BigDecimal এর subtract() মেথড দুটি BigDecimal সংখ্যা বিয়োগ করতে ব্যবহৃত হয়।
Example: Subtraction using BigDecimal
import java.math.BigDecimal;
public class BigDecimalSubtraction {
public static void main(String[] args) {
// Create two BigDecimal objects
BigDecimal num1 = new BigDecimal("1000.50");
BigDecimal num2 = new BigDecimal("250.25");
// Subtract the second BigDecimal from the first
BigDecimal result = num1.subtract(num2);
// Print the result
System.out.println("Difference: " + result);
}
}
Output:
Difference: 750.25
Explanation:
subtract()মেথডটি দুটিBigDecimalসংখ্যা থেকে বিয়োগ করে এবং একটি নতুনBigDecimalরিটার্ন করে।
3. Multiplication (গুণ) using multiply()
BigDecimal এর multiply() মেথড দুটি BigDecimal সংখ্যা গুণ করতে ব্যবহৃত হয়।
Example: Multiplication using BigDecimal
import java.math.BigDecimal;
public class BigDecimalMultiplication {
public static void main(String[] args) {
// Create two BigDecimal objects
BigDecimal num1 = new BigDecimal("50.25");
BigDecimal num2 = new BigDecimal("2.5");
// Multiply the two BigDecimal numbers
BigDecimal result = num1.multiply(num2);
// Print the result
System.out.println("Product: " + result);
}
}
Output:
Product: 125.625
Explanation:
multiply()মেথডটি দুটিBigDecimalসংখ্যা গুণ করে এবং একটি নতুনBigDecimalঅবজেক্ট রিটার্ন করে।
4. Division (ভাগ) using divide()
BigDecimal এর divide() মেথড দুটি BigDecimal সংখ্যা ভাগ করতে ব্যবহৃত হয়। কিন্তু ভাগ করার সময় ArithmeticException এড়াতে আপনাকে একটি RoundingMode নির্ধারণ করতে হবে, কারণ কিছু ক্ষেত্রে ভাগফল একটি নির্দিষ্ট দশমিক স্থান পর্যন্ত রাউন্ডিং করা প্রয়োজন।
Example: Division using BigDecimal
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimalDivision {
public static void main(String[] args) {
// Create two BigDecimal objects
BigDecimal num1 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("3");
// Divide the two BigDecimal numbers with rounding
BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP);
// Print the result
System.out.println("Quotient: " + result);
}
}
Output:
Quotient: 3.33
Explanation:
divide()মেথডেRoundingMode.HALF_UPব্যবহৃত হয়েছে, যাতে ভাগফল 3.33 পর্যন্ত রাউন্ডিং হয়।divide()মেথডের তৃতীয় প্যারামিটার হিসেবেRoundingModeনির্দিষ্ট করা হয় যাতে দশমিক স্থান ঠিকভাবে রাউন্ড করা যায়।
Handling ArithmeticException in Division
যখন আপনি BigDecimal ভাগ করেন, তখন যদি আপনার ভাগফল একটি অসম্পূর্ণ দশমিক হয়, তাহলে ArithmeticException হতে পারে। এই ধরনের ক্ষেত্রে, RoundingMode নির্দিষ্ট করা অত্যন্ত গুরুত্বপূর্ণ।
Example: Division without RoundingMode and Handling Exception
import java.math.BigDecimal;
public class BigDecimalDivisionException {
public static void main(String[] args) {
try {
// Create two BigDecimal objects
BigDecimal num1 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("3");
// Division without specifying RoundingMode may throw ArithmeticException
BigDecimal result = num1.divide(num2);
// Print the result
System.out.println("Quotient: " + result);
} catch (ArithmeticException e) {
System.out.println("Exception: " + e.getMessage());
}
}
}
Output:
Exception: Non-terminating decimal expansion; no exact representable decimal result.
Explanation:
- যখন
BigDecimalকেdivide()করা হয় এবং রাউন্ডিং মোড নির্দিষ্ট করা না হয়, তখন এটিArithmeticExceptionফেলে, যেহেতু ভাগফল একটি অসীম দশমিক সম্প্রসারণের কারণে সঠিকভাবে উপস্থাপন করা সম্ভব নয়।
BigDecimalক্লাস ব্যবহার করে আপনি সঠিক এবং নির্ভুলভাবে বড় সংখ্যার গাণিতিক অপারেশন করতে পারেন। এটি Addition, Subtraction, Multiplication, এবং Division সহ অনেক ধরনের গাণিতিক অপারেশন সঠিকভাবে পরিচালনা করতে সাহায্য করে।divide()মেথডেRoundingModeনির্ধারণ করে আপনি ভগ্নাংশ গণনার সময় রাউন্ডিং ঠিকভাবে করতে পারেন।BigDecimalএর মাধ্যমে floating-point বা বৃহত্তর পূর্ণসংখ্যা গাণিতিক হিসাব অত্যন্ত নির্ভুলভাবে করা সম্ভব।
এই ধরনের গাণিতিক অপারেশন সাধারণত ফাইনান্সিয়াল এবং সায়েন্টিফিক ক্যালকুলেশন অ্যাপ্লিকেশনগুলোতে ব্যবহৃত হয় যেখানে নির্ভুলতা অত্যন্ত গুরুত্বপূর্ণ।
Read more